草庐IT

c++ - 从 Qt 中的套接字中读取所有数据

我正在尝试通过Qt中的网络套接字(TCP)发送图像。它适用于小图像(小于8192字节),但不会处理较大的图像,因为接收端不知道它应该有多大(因此在尝试显示和图像之前不等待接收所有数据)。我尝试将数据大小添加到数组的开头并在另一端读取它,但我在接收端得到的数字与发送前插入的数字不匹配。谁能看出我做错了什么?voidScreenshot_controller::serializeImage(std::stringfileType,QImageimageToSerialize,QByteArray*imageStream){QBufferimageBuffer(imageStream);co

qt - 如何在基于 Qt 的 TCP 服务器 - 客户端应用程序中忽略 SSL 错误

我正在实现使用TCP进行通信的客户端-服务器应用程序。我想使用SSL来提高安全性,但我需要使客户端甚至可以连接到具有自签名或“不是很安全”证书的服务器。现在我创建了一些随机测试证书,并尝试在我的本地机器上使用它(服务器和客户端都在那里运行,无法完成服务器主机解析,它只是本地主机)。我一直在客户端收到此错误:Socketerror:Thehostnamedidnotmatchanyofthevalidhostsforthiscertificate我试图通过使用以下代码来抑制这种情况://Wedon'tcareaboutselfsignedcertificatesQListerrors;e

c++ - QT QTcpServer 没有及时连接

我正在制作一个简单的程序,它将“连接”到自身然后发送数据。它启动一个QTcpServer然后等待任何传入的连接。我有一个单独的函数,它将依次尝试在我决定的本地主机和端口上连接到该服务器。这在我在命令提示符下打开Telnet时起作用,但现在在我的实际程序中起作用。这是我使用的代码(有些是来自其他来源的代码片段)主窗口.cpp:#include"mainwindow.h"#include"ui_mainwindow.h"MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->s

qt - Qt 如何拒绝 TCP 请求

在Qt5中如果我们使用qtcpSocket->->disconnectFromHost();这意味着我完全关闭了与远程主机的连接。我的问题是如何拒绝tcp连接???谢谢大家 最佳答案 你不能。在被动open()之后,操作系统会在您的程序休眠时接受每个连接。 关于qt-Qt如何拒绝TCP请求,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/17400015/

c++ - 使用 qt 的多客户端/服务器 tcp 应用程序

我正在从事一个项目,该项目需要在“主”应用程序和多个“仆人”之间进行tcp通信。(项目是c++,我也在用qt)“仆人”会做一些处理并将他们的结果发送给“主人”。到目前为止,它是一个简单的多客户端-服务器应用程序。问题是,在随机的时间,主人会要求仆人提供一些额外的信息,甚至向他们发送信息以改变他们处理的方式。如果我的项目基于fortune客户端/服务器示例,我能否从主人向仆人发送消息?(有什么想法吗?)或者我的工作是否需要基于其他东西(比如聊天客户端?)?关于tcp客户端/服务器通信的任何其他建议都是受欢迎的,但由于我已经使用qt,我不想添加其他库....提前致谢!

qt - 从以太网上的 Qt 应用程序发送文件

我想使用以太网从Qt应用程序发送文件。当我单击按钮时,必须传输文件。所以我的问题是:问:需要什么配置,因为IP和网络掩码在我使用的设备中是固定的:AM335x:Linux操作系统:Qt应用我是TCP/IP的新手,请告诉我如何进行;从以太网我能够从PC下载Qt应用程序可执行文件到我的设备(AM335x)并且它运行良好。但我想将文件从Am335x设备发送到其他设备或PC。问候普拉文 最佳答案 基本上您想要使用的是Qt网络模块。你可以在这里阅读:http://qt-project.org/doc/qt-5.0/qtnetwork/qtne

qt - 为什么 QWebSocketServer 在客户端连接尝试时发送 TCP [FIN] 消息

我在Qt5.8中使用QWebSocketServer。大多数WebSocket客户端都可以轻松连接到它,但其中一个会引发异常行为。下面是我使用此客户端(客户端10.8.0.1,服务器10.8.0.8)获得的WireShark捕获。10.8.0.110.8.0.8TCP4451331→8888[SYN]Seq=0Win=2920Len=0MSS=135510.8.0.810.8.0.1TCP448888→51331[SYN,ACK]Seq=0Ack=1Win=29200Len=0MSS=146010.8.0.110.8.0.8TCP4051331→8888[ACK]Seq=1Ack=1W

qt - 使用Qt通过TCP接收原始图像数据进行显示

我正在开发一个GUI来显示来自传感器的图像。GUI充当客户端,而传感器充当服务器。一旦我向传感器发送命令,传感器就会通过TCP向GUI连续发送流式原始图像数据(二进制数据)。数据将是图像存储器的精确副本,大小为宽度(1240)x高度(1028),以U8(无符号8位)编码。一个传入数据的大小为(1240x1028x1字节)+20字节(元header)=1.3MByte。我最大的障碍是:1.)我怎样才能连续接收和存储来自传感器的流数据以供显示?2.)如何显示原始数据?我试过下面的代码,但它不起作用。请指教:“客户端.h”#ifndefCLIENT_H#defineCLIENT_H#incl

c++ - 如何安全地删除 QT::QTcpSocket?

QTcpSocket*QTcpServer::nextPendingConnection()[virtual]Thesocketiscreatedasachildoftheserver,whichmeansthatitisautomaticallydeletedwhentheQTcpServerobjectisdestroyed.Itisstillagoodideatodeletetheobjectexplicitlywhenyouaredonewithit,toavoidwastingmemory.在我的应用程序中,QTcpServer存在很长时间(当连接关闭时它会与主机断开连接,但

Libpcap和Qt的安装及数据包抓包、过滤、保存

本次实验是基于ubuntu虚拟机。实验目的(1)准备实验环境;(2)libpcap相关函数;(3)掌握数据包的抓包过程(二)实验内容安装libpcap;在虚拟机中安装QT软件;使用libpcap编码,进行数据抓包、过滤及保存实验步骤安装libcapLibpcap简介Libpcap是unix/linux平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础。Libpcap可以在绝大多数类unix平台下工作。Libpcap是一个网络数据包捕获函数库,功能非常强大,Linux下著名的tcpdump就是以它为基础的。此安装是基于ubuntu虚拟机进行libpcap的安装。安装gcc:sudoap